1. Technical Field
The present invention relates in general to computers, and in particular to computer software. Still more particularly, the present invention relates to a system, method and computer program product for partitioning a main dread and a helper thread for execution division among multiple cores.
2. Description of the Related Art
A computer can be viewed, in a simple perspective, as a set of hardware that manipulates data by executing instructions from an application, all under the control of an operating system. The application is a collection of all software needed to perform a task from a user's point of view. This includes the main thread(s) of executable binaries derived from the main thread. The executable binaries are groups of instructions that are loaded into execution units and other logic in a core of a processor in the computer.
When a user decides to run an application, the operating system loads the executable binaries into a region of memory, called the “code space.” An instruction fetch unit then starts executing code, from the code space, to manipulate data from local registers and/or data caches. To optimize execution efficiency, the data to be manipulated needs to be readily available.